package com.csun.cmny.provider.model.dto.revise;

import com.csun.cmny.provider.model.dto.ExpenseItemDto;
import com.csun.cmny.provider.model.vo.revise.ExpenseItem;
import com.csun.cmny.util.PubUtils;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.math.BigDecimal;
import java.util.List;

/**
 * @Auther: chisj chisj@foxmal.com
 * @Date: 2019-09-10 11:17
 * @Description: the class revise dto
 */
@Data
public class ReviseDto {

    /**
     * 老人Id
     */
    @NotNull(message = "{oldman.id.null}")
    private Integer oldmanId;

    /**
     * 调房调级原因
     */
    @NotNull(message = "{revise.reason.null}")
    @Range(min = 1, max = 3, message = "{revise.reason.range.error}")
    private Integer reason;

    /**
     * 调整日期
     */
    @NotNull(message = "{revise.date.null}")
    @NotEmpty(message = "{revise.date.null}")
    @Pattern(regexp = PubUtils.REGEX_YYYY_MM_DD,
            message = "{revise.date.error}")
    private String date;

    /**
     * 套餐退费金额
     */
    @NotNull(message = "{revise.pack.fee.null}")
    private BigDecimal packFee;

    /**
     * 请假退费金额
     */
    @NotNull(message = "{revise.leave.fee.null}")
    private BigDecimal leaveFee;

    /**
     * 请假天数
     */
    @NotNull(message = "{revise.leave.days.null}")
    private Integer leaveDays;

    /**
     * 补缴天数
     */
    @NotNull(message = "{revise.pay.days.null}")
    private Integer payDays;

    /**
     * 调整差额
     */
    @NotNull(message = "{revise.agio.null}")
    private BigDecimal agio;

    /**
     * 调整总额
     */
    @NotNull(message = "{revise.total.null}")
    private BigDecimal total;

    /**
     * 床位Id
     */
    private Integer bedId;

    /**
     * 说明
     */
    private String remark;

    /**
     * 选择周期费用
     */
    List<GroupPaymentFeeDto> groupPaymentFeeDtoList;
}
